package com.alibaba.fastjson;

abstract class AbsJson implements IJSON {

//	@Override
//	public String toString() {
//		return toJSONString();
//	}
	
	static boolean isBlank(String str) {
        return str == null || str.trim().length() == 0;
    }
	
	static boolean isWrap(String str, char start, char end) {
        if (isBlank(str)) {
            return false;
        }
        return str.charAt(0) == start && str.charAt(str.length() - 1) == end;
    }
	
    /**
     * 是否为JSONObject字符串，首尾都为大括号或中括号判定为JSON字符串
     *
     * @param str 字符串
     * @return 是否为JSON字符串
     */
    public static boolean isJsonArray(String str) {
        if (isBlank(str)) {
            return false;
        }
        return isWrap(str.trim(), '[', ']');
    }
    
    /**
     * 是否为JSONObject字符串，首尾都为大括号或中括号判定为JSON字符串
     *
     * @param str 字符串
     * @return 是否为JSON字符串
     */
    public static boolean isJsonObj(String str) {

        if (isBlank(str)) {
            return false;
        }
        return isWrap(str.trim(), '{', '}');
    }
    
    /**
     * 是否为JSON字符串，首尾都为大括号或中括号判定为JSON字符串
     *
     * @param str 字符串
     * @return 是否为JSON字符串
     */
    public static boolean isJson(String str) {
        return isJsonObj(str) || isJsonArray(str);
    }
    
}
